﻿using JshRCSWebApi.Infrastructure.Domain.VO.SysVehicle.VehicleState;
using JshRCSWebApi.Infrastructure.Domain.VO.SysVehicle.VehicleTask;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace JshRCSWebApi.Infrastructure.Domain.VO.SysVehicle.VehiclePush
{ 
    public class robot_push_VO:ResponseVO
    {
        /// <summary>
        /// 控制器电压, 单位 V
        /// </summary>
        public double controller_voltage { get; set; }
        /// <summary>
        /// 控制器湿度, 单位 %
        /// </summary>
        public double controller_humi { get; set; }
        /// <summary>
        /// true 表示电机驱动器发生急停, false 表示电机驱动器发生未急停
        /// </summary>
        public bool driver_emc { get; set; }
        /// <summary>
        /// 俯仰角，单位：rad
        /// </summary>
        public double pitch { get; set; }
        /// <summary>
        /// 滚转角，单位：rad
        /// </summary>
        public double roll { get; set; }
        /// <summary>
        /// 偏航角，单位：rad
        /// </summary>
        public double yaw { get; set; }
        /// <summary>
        /// 顶升状态
        /// </summary>
        public robot_status_jack_VO jack { get; set; }
        /// <summary>
        /// 当前导航要去的站点
        /// </summary>
        public string target_id { get; set; }
        /// <summary>
        /// 导航类型, 0 = 没有导航, 1 = 自由导航到任意点, 2 = 自由导航到站点, 3 = 路径导航到站点, 7 = 平动转动, 100 = 其他
        /// </summary>
        public int task_type { get; set; }
        /// <summary>
        /// 0 = NONE,
        ///1 = WAITING(目前不可能出现该状态),
        ///2 = RUNNING,
        ///3 = SUSPENDED,
        ///4 = COMPLETED,
        ///5 = FAILED,
        ///6 = CANCELED
        /// </summary>
        public int task_status { get; set; }
        /// <summary>
        /// 机器人是否减速
        /// </summary>
        public bool slowed { get; set; }
        /// <summary>
        /// 累计运行时间, 单位 ms
        /// </summary>
        public double total_time { get; set; }
        /// <summary>
        /// 本次运行时间(开机后到当前的时间), 单位 ms
        /// </summary>
        public double time { get; set; }
        /// <summary>
        /// 今日累计行驶里程, 单位 m
        /// </summary>
        public double today_odo { get; set; }
        /// <summary>
        /// 累计行驶里程, 单位 m
        /// </summary>
        public double odo { get; set; }
        /// <summary>
        /// 任务链状态
        /// </summary>
        public Tasklist_status tasklist_status { get; set; }
        /// <summary>
        /// 电流, 单位 A
        /// </summary>
        public double current { get; set; }
        /// <summary>
        /// 电压, 单位 V
        /// </summary>
        public double voltage { get; set; }
        /// <summary>
        /// 电池循环次数(从电池 BMS 获取，不保证正确)
        /// </summary>
        public int battery_cycle { get; set; }
        /// <summary>
        /// 机器人电池温度, 单位 ℃
        /// </summary>
        public double battery_temp { get; set; }
        /// <summary>
        /// 当前控制权所有者
        /// </summary>
        public robot_status_current_lock_VO current_lock { get; set; }
        /// <summary>
        /// 0 = FAILED(载入地图失败),
        ///1 = SUCCESS(载入地图成功),
        ///2 = LOADING(正在载入地图)
        /// </summary>
        public int loadmap_status { get; set; }
        /// <summary>
        /// 是否处于软急停状态
        /// </summary>
        public bool soft_emc { get; set; }
        /// <summary>
        /// 是否抱闸
        /// </summary>
        public bool brake { get; set; }
        /// <summary>
        /// 机器人名称
        /// </summary>
        public string vehicle_id { get; set; }
        /// <summary>
        /// 当前地图名
        /// </summary>
        public string current_map { get; set; }
        /// <summary>
        /// true 表示急停按钮处于激活状态(按下), false 表示急停按钮处于非激活状态(拔起)
        /// </summary>
        public bool emergency { get; set; }
        /// <summary>
        /// 电池是否正在充电
        /// </summary>
        public bool charging { get; set; }
        /// <summary>
        /// 机器人电池电量,
        ///范围[0, 1]
        /// </summary>
        public double battery_level { get; set; }
        /// <summary>
        /// 机器人是否被阻挡
        /// </summary>
        public bool blocked { get; set; }
        /// <summary>
        /// 机器人在机器人坐标系的 y 方向实际的速度, 单位 m/s
        /// </summary>
        public double vy { get; set; }
        /// <summary>
        /// 机器人在机器人坐标系的实际的角速度(即顺时针转为负, 逆时针转为正), 单位 rad/s
        /// </summary>
        public double w { get; set; }
        /// <summary>
        /// 机器人在机器人坐标系的 x 方向实际的速度, 单位 m/s
        /// </summary>
        public double vx { get; set; }
        /// <summary>
        /// 离机器人最近站点的 id
        /// </summary>
        public string current_station { get; set; }
        /// <summary>
        /// 机器人的 angle 坐标, 单位 rad
        /// </summary>
        public double angle { get; set; }
        /// <summary>
        /// 机器人的 x 坐标, 单位 m
        /// </summary>
        public double x { get; set; }
        /// <summary>
        /// 机器人的 y 坐标, 单位 m
        /// </summary>
        public double y { get; set; }
        /// <summary>
        /// 控制器温度, 单位 ℃
        /// </summary>
        public double controller_temp { get; set; }
    }
}
